home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v10n01.arc / MAKEFOX.BAS < prev    next >
BASIC Source File  |  1990-12-11  |  2KB  |  81 lines

  1. 10 '  MAKEFOX.BAS   FoxPro Version
  2. 20 '  Generate a procedure to recreate a .DBF or other file
  3. 100 CLS
  4. 110 ALPHA$ = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW"
  5. 115 ALPHA$ = ALPHA$ + "XYZ1234567890`~-_=+;:<>,.?/|\!@#$%^&*()"
  6. 120 LINE INPUT "dBASE file to read :", S$
  7. 130 IF INSTR(S$, ".") = 0 THEN S$ = S$ + ".dbf"
  8. 140 ON ERROR GOTO 740
  9. 150 OPEN S$ FOR INPUT AS #1
  10. 160 CLOSE 1: ON ERROR GOTO 0
  11. 170 LINE INPUT "Procedure file to append to :", T$
  12. 172 IF T$ = "" THEN 170
  13. 180 IF INSTR(T$, ".") = 0 THEN T$ = T$ + ".prg"
  14. 190 LINE INPUT "Procedure name :", P$: IF P$ = "" THEN 190
  15. 200 OPEN S$ FOR RANDOM AS #1 LEN = 1
  16. 210 FIELD 1, 1 AS A$: FL = LOF(1)
  17. 220 GET 1, FL: IF A$ = CHR$(26) THEN FL = FL - 1
  18. 230 OPEN T$ FOR APPEND AS #2
  19. 240 PRINT #2, "PROCEDURE "; P$
  20. 250 PRINT #2, "PARAMETER F_TMP"
  21. 260 PRINT #2, "NL=CHR(0)"
  22. 270 PRINT #2, "IF PARAMETERS()=0"
  23. 280 PRINT #2, "  SET PRINTER TO "; S$
  24. 290 PRINT #2, "ELSE"
  25. 300 PRINT #2, "   SET PRINTER TO &F_TMP"
  26. 310 PRINT #2, "ENDIF"
  27. 330 PRINT #2, "SET CONSOLE OFF"
  28. 340 PRINT #2, "??? ";
  29. 350 LC = 0
  30. 360 FOR Y = 1 TO FL
  31. 370   GET 1, Y
  32. 380   LC = LC + 1
  33. 390   IF A$ <> CHR$(0) THEN 490
  34. 395   IF Y = FL THEN GOTO 650
  35. 400   NLCNT = 0
  36. 410   WHILE A$ = CHR$(0)
  37. 420     NLCNT = NLCNT + 1
  38. 430     Y = Y + 1
  39. 440     GET 1, Y
  40. 445     IF Y = FL THEN GOTO 460
  41. 450   WEND
  42. 460   Y = Y - 1
  43. 470   IF NLCNT = 1 THEN PRINT #2, "NL"; : GOTO 660
  44. 480   PRINT #2, "REPL(NL," + MID$(STR$(NLCNT), 2) + ")"; : GOTO 660
  45. 490   IF INSTR(ALPHA$, A$) = 0 THEN 650
  46. 500   PRINT #2, CHR$(34);
  47. 510   QCNT = 0
  48. 520   WHILE INSTR(ALPHA$, A$) <> 0 AND Y <= FL
  49. 530     QCNT = QCNT + 1
  50. 540     IF QCNT > 50 THEN GOSUB 810
  51. 550     PRINT #2, A$;
  52. 560     Y = Y + 1
  53. 570     GET 1, Y
  54. 580   WEND
  55. 590   Y = Y - 1
  56. 600   PRINT #2, CHR$(34);
  57. 610   IF Y >= FL THEN 670
  58. 620   LC = LC + INT(QCNT / 10)
  59. 630   IF LC > 7 THEN LC = 7
  60. 640   GOTO 660
  61. 650   PRINT #2, "CHR("; MID$(STR$(ASC(A$)), 2); ")";
  62. 660   IF LC >= 7 THEN GOSUB 910 ELSE IF Y <> FL THEN PRINT #2, "+";
  63. 670 NEXT
  64. 680 PRINT #2,
  65. 690 PRINT #2, "SET PRINTER TO"
  66. 710 PRINT #2, "SET CONSOLE ON"
  67. 715 PRINT #2, "RETURN"
  68. 720 CLOSE 1, 2
  69. 730 END
  70. 740 PRINT : PRINT "Invalid filename."
  71. 750 RESUME 120
  72. 800 '
  73. 810 PRINT #2, CHR$(34): PRINT #2, "??? "; CHR$(34);
  74. 820 LC = 1: QCNT = 1
  75. 830 RETURN
  76. 900 '
  77. 910 IF Y = FL THEN RETURN
  78. 920 PRINT #2, : PRINT #2, "??? "; : LC = 0
  79. 930 RETURN
  80.  
  81.